opencv之Blob检测 |
您所在的位置:网站首页 › opencv 斑点检测 › opencv之Blob检测 |
原理
首先通过一系列连续的阈值把输入的灰度图像转换为一个二值图像的集合,阈值范围为[T1,T2],步长为t,则所有阈值为: 不是所有的二值图像的连通区域都认为是二值图的斑点,会通过一定的限制。如面积、圆度【越接近0越像圆】、偏心率、凸度(凹凸) 凸度:凸形图指的是图形的所有部分都在由该图形切线所围成的区域的内部 圆度:C = 4πS/p^2 S表示面积,p表示周长 代码 #!/usr/bin/python # Standard imports import cv2 import numpy as np; # Read image im = cv2.imread("blob.jpg", cv2.IMREAD_GRAYSCALE) # Setup SimpleBlobDetector parameters. params = cv2.SimpleBlobDetector_Params() # 设置阈值#影响颜色问题 params.minThreshold = 10 params.maxThreshold = 500 # 设置面积 params.filterByArea = True params.minArea = 1500 # 形状(凸) params.filterByCircularity = True params.minCircularity = 0.1 # 形状(凹) params.filterByConvexity = True params.minConvexity = 0.87 # 形状(圆) params.filterByInertia = True params.minInertiaRatio = 0.01 # cv2版本 ver = (cv2.__version__).split('.') if int(ver[0]) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |